﻿using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Threading;

namespace ConsoleApp5
{
    class 文件
    {
        public 文件()
        {
            //Console.WriteLine("File");
            //MyFile myFile = new MyFile();
            Console.WriteLine("FileInfo");
            MyFileInfo myFileInfo = new MyFileInfo();
        }
    }
    class MyFileInfo
    {
        public MyFileInfo()
        {
            string fileName = "test.txt";
            string fileName1 = "MyFile.txt";
            FileInfo file = new FileInfo(fileName);
            if (file.Exists)                    // 判断文件是否存在
                file.Delete();
            FileStream stream = file.Create();  // 文件操作要用FileStream
            stream.WriteByte(10);
            stream.Write(Encoding.UTF8.GetBytes("你好"));
            stream.Close();
            if (!File.Exists(fileName1))
            {
                file.Refresh();                 // 操作文件前需要刷新
                if (!file.IsReadOnly)
                    file.CopyTo(fileName1);
            }
            File.Delete(fileName1);             // 删除文件
            Thread.Sleep(10); 
            file.Refresh();                     // 刷新状态
            file.MoveTo(fileName1);             // 不调用上面的refresh函数会概率性报错，没有这个文件
            Console.WriteLine("文件路径+名字：" + file.FullName);
            Console.WriteLine("文件名：" + file.Name);
            Console.WriteLine("文件大小：" + file.Length);
            Console.WriteLine("文件创建时间：" + file.CreationTime.ToShortDateString());
            Console.WriteLine("文件更新时间：" + file.LastWriteTime.ToShortDateString());
            file = null;
        }
    }
    class MyFile
    {
        public MyFile()
        {
            string fileName = "test.txt";
            string fileName1 = "MyFile.txt";

            if (!File.Exists(fileName))                                     // 判断文件是否存在
            {
                File.Create(fileName);                                      // 创建文件
            }
            if (File.Exists(fileName1))
                File.Delete(fileName1);                                     // 删除文件
            File.Copy(fileName, fileName1);                                 // 拷贝文件
            File.Delete(fileName);                                          // 删除文件
            File.Move(fileName1, fileName);                                 // 移动文件
            File.WriteAllText(fileName, "hello");                           // 添加内容，会把原来的删除再添加
            Console.WriteLine(File.ReadAllText(fileName));                  // 读取全部
            FileStream fileStream = File.Open(fileName, FileMode.Append);   // 文件流打开，打开方式可以是添加或重写等
            fileStream.Write(Encoding.UTF8.GetBytes("你好呀，我是谁谁谁")); // 文件流写入
            fileStream.Close();                                             // 关闭文件流
            Console.WriteLine(File.ReadAllText(fileName));
        }
    }
}
